package ar.utn.frgp.banco.front.action.plazofijo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import ar.utn.frgp.banco.dto.UserDTO;
import ar.utn.frgp.banco.entity.PlazoFijo;
import ar.utn.frgp.banco.exceptions.PersonalisedException;
import ar.utn.frgp.banco.front.action.EBAbstractAction;
import ar.utn.frgp.banco.front.constants.Constantes;
import ar.utn.frgp.banco.service.PlazoFijoService;

public class PlazoFijoActivosAction extends EBAbstractAction implements SessionAware{

	/**
	 * 
	 */
	private static final long serialVersionUID = 8823183927918698951L;

	Map<String, Object> session;
	
	private PlazoFijoService plazoFijoService;
	
	List<PlazoFijo> plazosFijos;
	
	@Override
	public String execute() throws PersonalisedException {
		UserDTO uDto = (UserDTO) session.get(Constantes.USER_LOGGED_BEAN);
		
		try {
			List<PlazoFijo> lista = plazoFijoService.plazosFijosPorCliente(uDto.getDni());
			Date hoy = new Date();
			if(lista != null){
				plazosFijos = new ArrayList<PlazoFijo>();
				for(PlazoFijo p : lista){
					if(p.getFechaVencimiento().after(hoy)){
						plazosFijos.add(p);
					}
				}
			} 
			} catch (Exception e) {
				// TODO: handle exception
			}
			if(plazosFijos.isEmpty()){
				plazosFijos = null;
				addActionError("Usted no tiene plazos fijos activos");
			}
			return SUCCESS;
	}

	public void setSession(Map<String, Object> arg0) {
		this.session = arg0;
		
	}

	public PlazoFijoService getPlazoFijoService() {
		return plazoFijoService;
	}

	public void setPlazoFijoService(PlazoFijoService plazoFijoService) {
		this.plazoFijoService = plazoFijoService;
	}

	public List<PlazoFijo> getPlazosFijos() {
		return plazosFijos;
	}

	public void setPlazosFijos(List<PlazoFijo> plazosFijos) {
		this.plazosFijos = plazosFijos;
	}
	
}
